#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int ldata;

typedef struct list
{
	ldata data;
	struct list* next;
	struct list* prev;
}li;

li *LIinit();
void LIdestroy(li* p);
void LIprint(li* p);

void LIpushtail(li* p, ldata x);
void LIpushhead(li* p, ldata x);

void LIpoptail(li* p);
void LIpophead(li* p);

void LIinsert(li* pos, ldata x);
void LIerase(li* pos);
li* LIfind(li* p, ldata x);